home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 September / PCWorld_2006-09_cd.bin / v cisle / flyakite / FlyakiteOSX v3.5.exe / $DESKTOP / FlyakiteOSX v3.5 Source / Get Parameters.nsi < prev    next >
Encoding:
Text File  |  2005-11-23  |  2.2 KB  |  135 lines

  1. #==========================================
  2. # FUNCTION - GET PARAMETERS
  3. #==========================================
  4.         Function GetParameters
  5.               Push $R0
  6.               Push $R1
  7.               Push $R2
  8.               Push $R3
  9.  
  10.               StrCpy $R2 1
  11.               StrLen $R3 $CMDLINE
  12.  
  13.               #Check for quote or space
  14.               StrCpy $R0 $CMDLINE $R2
  15.               StrCmp $R0 '"' 0 +3
  16.                 StrCpy $R1 '"'
  17.                 Goto loop
  18.               StrCpy $R1 " "
  19.  
  20.               LOOP:
  21.                 IntOp $R2 $R2 + 1
  22.                 StrCpy $R0 $CMDLINE 1 $R2
  23.                 StrCmp $R0 $R1 GET
  24.                 StrCmp $R2 $R3 GET
  25.                 Goto LOOP
  26.  
  27.               GET:
  28.                 IntOp $R2 $R2 + 1
  29.                 StrCpy $R0 $CMDLINE 1 $R2
  30.                 StrCmp $R0 " " get
  31.                 StrCpy $R0 $CMDLINE "" $R2
  32.  
  33.               Pop $R3
  34.               Pop $R2
  35.               Pop $R1
  36.               Exch $R0
  37.         FunctionEnd
  38.  
  39.  
  40.  
  41. #==========================================
  42. # FUNCTION - GET PARAMETER VALUE
  43. #==========================================
  44.         Function GetParameterValue
  45.           Exch $R0
  46.           Exch
  47.           Exch $R1
  48.  
  49.           Push $R2
  50.           Push $R3
  51.           Push $R4
  52.           Push $R5
  53.  
  54.           Strlen $R2 $R1+2
  55.  
  56.           Call GetParameters
  57.           Pop $R3
  58.  
  59.           StrCpy $R5 '"'
  60.           Push $R3
  61.           Push '"/$R1='
  62.           Call StrStr
  63.           Pop $R4
  64.           StrCpy $R4 $R4 "" 1
  65.           StrCmp $R4 "" "" NEXT
  66.  
  67.           StrCpy $R5 ' '
  68.  
  69.           Push $R3
  70.           Push '/$R1='
  71.           Call StrStr
  72.           Pop $R4
  73.  
  74.             NEXT:
  75.               StrCmp $R4 "" CHECK_FOR_SWITCH
  76.  
  77.               StrCpy $R0 $R4 "" $R2
  78.  
  79.               Push $R0
  80.               Push $R5
  81.  
  82.               Call StrStr
  83.               Pop $R4
  84.               StrCmp $R4 "" DONE
  85.               StrLen $R4 $R4
  86.  
  87.               StrCpy $R0 $R0 -$R4
  88.  
  89.               goto DONE
  90.  
  91.             CHECK_FOR_SWITCH:
  92.               Push $R3
  93.               Push '/$R1'
  94.               Call StrStr
  95.               Pop $R4
  96.               StrCmp $R4 "" DONE
  97.               StrCpy $R0 ""
  98.  
  99.             DONE:
  100.               Pop $R5
  101.               Pop $R4
  102.               Pop $R3
  103.               Pop $R2
  104.               Pop $R1
  105.               Exch $R0
  106.         FunctionEnd
  107.  
  108.  
  109.  
  110. #==========================================
  111. # FUNCTION - STRING STRING
  112. #==========================================
  113.         Function StrStr
  114.           Exch $R1
  115.           Exch
  116.           Exch $R2
  117.           Push $R3
  118.           Push $R4
  119.           Push $R5
  120.           StrLen $R3 $R1
  121.           StrCpy $R4 0
  122.           LOOP:
  123.             StrCpy $R5 $R2 $R3 $R4
  124.             StrCmp $R5 $R1 DONE
  125.             StrCmp $R5 "" DONE
  126.             IntOp $R4 $R4 + 1
  127.             Goto LOOP
  128.           DONE:
  129.           StrCpy $R1 $R2 "" $R4
  130.           Pop $R5
  131.           Pop $R4
  132.           Pop $R3
  133.           Pop $R2
  134.           Exch $R1
  135.         FunctionEnd